Inhaltsverzeichnis Allgemeine Fragen UDO5
Die Onlinehilfe zu COPS

Programmierdoku

Wie erkenne ich COPS?

Wer cpx_init() als

     CPX_INFO * cdecl cpx_init( XCPB *xcpb, LONG magic, LONG version );
definiert, kann anhand der Parameter <magic> und <version> feststellen, ob das CPX unter COPS oder XCONTROL läuft:

     WORD is_COPS( LONG magic, LONG version )
     {
        if (( magic == 'COPS' ) && ( version >= 0x10000L )) /* COPS? */
           return( 1 );
     
        return( 0 );                                     /* XCONTROL */
     }
Wenn COPS erkannt wurde, kann das CPX einen bis zu 512 * 384 Pixel großen Objektbaum zeichnen und bei Xform_do() übergeben.

Wenn COPS vorhanden ist, gilt außerdem folgende Erweiterung für cpx_call():

     WORD cdecl cpx_call( GRECT *work, DIALOG *dialog );
Dabei enthält <dialog> den Zeiger auf die Fensterdialogstruktur. Der Fensterdialog wird von COPS nach cpx_init() mit wdlg_create() und wdlg_open() geöffnet. Das GRECT <work> und der Objektbaum liegen bis zum ersten Aufruf von Xform_do() bzw. bis zur Rückkehr aus cpx_call() außerhalb des sichtbaren Bildschirms.